當獲得龐大複雜的資料時,我們可將資料採用groupby()函式分組,方便以不同群組角度檢視資料。
先匯入資料
from pandas.core.groupby import groupby
import pandas as pd
pd.DataFrame([[8,'律師',165,54],[5,'教師',150,90],[4,'美容師',170,58],[2,'醫師',160,53],[6,'律師',158,66],[8,'教師',180,82],[5,'機師',188,85],[7,'醫師',182,75],[6,'護理師',166,56],[8,'護理師',163,55],[9,'護理師',150,48]],columns=['滿意度','職業','身高','體重'])
執行結果:
滿意度 職業 身高 體重
0 8 律師 165 54
1 5 教師 150 90
2 4 美容師 170 58
3 2 醫師 160 53
4 6 律師 158 66
5 8 教師 180 82
6 5 機師 188 85
7 7 醫師 182 75
8 6 護理師 166 56
9 8 護理師 163 55
10 9 護理師 150 48
將相同的"職業"群組化,檢視不同"職業"的所有欄位資料,可使用groupby(),依據職業欄位來分類資料。
A=df.groupby(['職業'])
print(A)
執行結果:
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7baaebbafca0>
依據上述職業欄位來分類,查看其他欄位狀況。
並以value_counts()統計欄位資料,並指定職業欄位中的不同群組,來檢視其他資料。
B=A['滿意度'].value_counts()
print(B)
執行結果:
職業 滿意度
律師 6 1
8 1
教師 5 1
8 1
機師 5 1
美容師 4 1
護理師 6 1
8 1
9 1
醫師 2 1
7 1
Name: 滿意度, dtype: int64
透過不同的群組角度,更加了解資料。
A.get_group("律師")
執行結果:
滿意度 職業 身高 體重
0 8 律師 165 54
4 6 律師 158 66
A.get_group("護理師")
執行結果:
滿意度 職業 身高 體重
8 6 護理師 166 56
9 8 護理師 163 55
10 9 護理師 150 48
距離資料分析越來越近了~